package hiho.ku._1152;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Main {
	
	private static final boolean[] fib = new boolean[101];

	public static void main(String[] args) {
		
		int a = 1;
		int b = 1;
		while (a <= 100) {
			fib[a] = true;
			int tmp = a;
			a = a + b;
			b = tmp;
		}
		fib[0] = true;
		
		Scanner in = new Scanner(System.in);
		String s = in.next();
		List<String> subs = new ArrayList<String>();
		for (int i = 0; i < s.length(); i++)
			for (int j = i + 1; j <= s.length(); j++) {
				String sub = s.substring(i, j);
				if (check(sub))
					subs.add(sub);
			}
		String[] x = subs.toArray(new String[0]);
		Arrays.sort(x);
		System.out.println(x[0]);
		for (int i = 1; i < x.length; i++)
			if (!x[i].equals(x[i - 1]))
				System.out.println(x[i]);
	}
	
	private static boolean check(String s) {
		int[] count = new int[26];
		for (int i = 0; i < s.length(); i++)
			count[s.charAt(i) - 'a']++;
		int q = 0;
		for (int i = 0; i < 26; i++)
			if (count[i] > 0)
				q++;
		return fib[q];
	}

}
